import {ref} from "vue";

export default function () {
    //加载状态loadmore加载更多 loading加载中  nomore没有更多数据
    let loadStatus = ref('loadmore')
    // 是否加载完成
    let isFinish = ref(false)
    // 当前页下标
    let pageIndex = ref(1)

    // 判断是否是最后一页 totalPage为总页数
    const judgeFinish = (total: number) => {
        let totalPage = total
        isFinish.value = pageIndex.value >= totalPage
        loadStatus.value = isFinish.value ? 'nomore' : 'loadmore'
    }

    // 监听滚动到底部
    const reachBottom = (callback: Function) => {
        if (isFinish.value) return // 如果已经加载完成，不再执行
        loadStatus.value = 'loading' // 设置加载状态为加载中
        pageIndex.value++ // 页数加一
        callback() // 执行回调
    }
    return {
        pageIndex,
        loadStatus,
        isFinish,
        judgeFinish,
        reachBottom
    }
}